import {Loading, Message, MessageBox, Notification} from 'element-ui'
import i18n, {t} from "@/lang";

let loadingInstance;

export default {
  // 消息提示
  msg(content) {
    Message.info(content)
  },
  // 错误消息
  msgError(content) {
    Message.error(content)
  },
  // 成功消息
  msgSuccess(content) {
    Message.success(content)
  },
  // 警告消息
  msgWarning(content) {
    Message.warning(content)
  },
  // 弹出提示
  alert(content) {
    MessageBox.alert(content, i18n.t('system-prompt'))
  },
  // 错误提示
  alertError(content) {
    MessageBox.alert(content, i18n.t('system-prompt'), {type: 'error'})
  },
  // 成功提示
  alertSuccess(content) {
    MessageBox.alert(content, i18n.t('system-prompt'), {type: 'success'})
  },
  // 警告提示
  alertWarning(content) {
    MessageBox.alert(content, i18n.t('system-prompt'), {type: 'warning'})
  },
  // 通知提示
  notify(content) {
    Notification.info(content)
  },
  // 错误通知
  notifyError(content) {
    Notification.error(content);
  },
  // 成功通知
  notifySuccess(content) {
    Notification.success(content)
  },
  // 警告通知
  notifyWarning(content) {
    Notification.warning(content)
  },
  // 确认窗体
  confirm(content, options = {}) {
    return MessageBox.confirm(content, i18n.t('system-prompt'), {
      confirmButtonText: i18n.t('ok'),
      cancelButtonText: i18n.t('cancel'),
      type: "warning",
      ...options
    })
  },
  // 提交内容
  prompt(content) {
    return MessageBox.prompt(content, i18n.t('system-prompt'), {
      confirmButtonText: i18n.t('ok'),
      cancelButtonText: i18n.t('cancel'),
      type: "warning",
    })
  },
  // 打开遮罩层
  loading(content) {
    loadingInstance = Loading.service({
      lock: true,
      text: content,
      spinner: "el-icon-loading",
      background: "rgba(0, 0, 0, 0.7)",
    })
  },
  // 关闭遮罩层
  closeLoading() {
    loadingInstance.close();
  },
  //富文本预览
  showRichText(title = '预览', content) {
    MessageBox.alert(content, title, {
      dangerouslyUseHTMLString: true
    });
  },
  //视频预览
  showVideo(title = '视频预览', url) {
    MessageBox({
      customClass: 'preview-modal',
      title,
      message: `
    <video
            style="object-fit:cover;"
            src="${url}"
            autoplay
            controls="controls">
             ${t('video.list.please-upgrade-your-browser')}
          </video>
    `,
      dangerouslyUseHTMLString: true,
      showConfirmButton: false,
      width: 600,
      showClose: true,
      callback(action, instance) {
        if (action == 'cancel') {
          const vidoe = instance.$el.querySelector('video')
          vidoe.src = null
        }
      }
    });
  }
}
